#ifndef FRAMECORE_H
#define FRAMECORE_H

#include <QWidget>
#include <qqtsqlquery.h>
#include <qqtdictionary.h>

class FrameCore : public QWidget
{
    Q_OBJECT
public:
    explicit FrameCore ( QWidget* parent = nullptr );

signals:

public slots:
};

/**
 * 根据按钮的编号计算它的坐标
 * 起始位置是从最上边开始的顺时针角.
 *
 * parent 要铺盖按钮的widget
 * 大圆半径 bradius = width / 2 - lradius - 10
 * 小圆按钮半径
 * 只有10个
 * 起始绘制，偏移角度
 */
QRect calculatePosition ( QWidget* parent, int index, int bradius, int lradius = 40, int lcount = 10, int shift = 0 );

void initLightDict();
void initSceneDict();
void initGroupDict();
void initUsingDict();
void initSearchingDict();

//only once
void initLightsDBtoDict();
//检测在使用的灯和组是否数据正常。
bool checkGroupLightsSum();
//
QString findIconNameBySceneName ( QString sceneName );

//caches
extern QQtDictionary gLightDict;
extern QQtDictionary gLightSceneDict;
extern QQtDictionary gLightGroupDict;
extern QQtDictionary gUsingLightsDict;
extern QQtDictionary gSearchingLightsDict;

#endif // FRAMECORE_H
